package cn.blnp.net.flowable.event.base;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * <h3>流程事件概述说明</h3>
 *
 * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
 * @version 1.0
 * @since 2025/5/6 17:26
 */
@Slf4j
@SpringBootTest
public class EventBaseTest {

    /**
     *  <h2>事件概述</h2>
     *  <hr/>
     *  <p>
     *      事件用于表明流程的生命周期中发生了什么事。在BPMN 2.0中，事件用圆圈符号表示。按照特性分类，可以将其分为捕获（catching）事件和抛出（throwing）事件两大类。
     *  </p>
     *  <ul>
     *      <li>
     *          <b>捕获事件：</b>当流程执行到该事件时，会中断执行，等待被触发。触发类型由XML定义文件中的类型声明决定。
     *      </li>
     *      <li>
     *          <b>抛出事件：</b>当流程执行到该事件时，会抛出一个结果。抛出的类型由XML定义文件中的类型声明决定。
     *      </li>
     *  </ul>
     *  <p>
     *      捕获事件与抛出事件在图形标记方面是根据内部图标是否被填充来区分的。捕获事件的内部图标填充为白色，而抛出事件的内部图标填充为黑色。在业务流程中可以出现多种不同类型的事件，
     *  BPMN能够支持其中的大多数事件。总的来说，BPMN 2.0支持60多种不同类型的事件。基于事件对流程的影响，主要有三大类型的事件：开始事件、中间事件（包括边界事件）和结束事件。
     *  </p>
     *
     *  <h3>事件定义</h3>
     *  <p>
     *      事件定义（event definition）指用于定义事件的语义。BPMN 2.0中规定了多种事件定义，这些事件定义可被嵌入不同的事件，从而组成不同类型的事件，如为空开始事件添加定时器事
     *  件定义就构成了定时器开始事件。Flowable支持的事件定义主要有以下10种：
     *  </p>
     *  <ol>
     *      <li>定时器事件定义（timer event definition）</li>
     *      <li>信号事件定义（signal event definition）</li>
     *      <li>消息事件定义（message event definition）</li>
     *      <li>错误事件定义（error event definition）</li>
     *      <li>取消事件定义（cancel event definition）</li>
     *      <li>补偿事件定义（compensate event definition）</li>
     *      <li>终止事件定义（terminate event definition）</li>
     *      <li>升级事件定义（escalation event definition）</li>
     *      <li>条件事件定义（conditional event definition）</li>
     *      <li>变量监听器事件定义（variable listener event definition）</li>
     *  </ol>
     */

    @Test
    public void test() {

    }
}
